Ethernet is a family of frame-based networking protocols commonly used to convey data between devices on local area networks (LANs). Ethernet is standardized in a collection of standards defined as IEEE 802.3. IEEE 802.3 specifies a media access control (MAC) sub-layer in the data link layer that defines different types of frames for flow control, such as control frames, pause frames, and the like. In particular, IEEE 802.3 defines the length of a control frame to be exactly 64 bytes, which is the minimum frame length of all frames. When the MAC logic in an Ethernet controller receives a control frame, the MAC logic checks the frame length. If the control frame is 64 bytes, the MAC logic signals the frame to be a good frame (unless other unrelated errors occur, such as an incorrect checksum). If the control frame is less than 64 bytes in length, the MAC logic signals the frame as a bad frame.
The restriction in IEEE 802.3 of the control frame length to exactly 64 bytes can result in inefficient operations from a systems perspective. For example, a user may want to concatenate several control commands in a proprietary format and encapsulate the control commands in a control frame. In such case, the length of the control commands may require the control frame to be longer than 64 bytes. Such a technique of command concatenation may increase efficiency because only a single control frame need be sent, rather than several control frames. However, conventional MAC logic complying with IEEE 802.3 will signal such a control frame as being bad, since the control frame will be longer than 64 bytes. Hence, the command concatenation scheme cannot be employed in cases where the hardware (e.g., MAC logic in the Ethernet controller) is strictly checking the length of a control frame against the 64 byte requirement of IEEE 802.3.
Accordingly, there exists a need in the art for controlling an operating mode for an embedded Ethernet MAC in order to overcome the aforementioned disadvantages.